package com.example.redis.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.redis.demo.model.SignUserLog;

import java.util.Date;

/**
 * 用户签到服务
 */
public interface UserSignService extends IService<SignUserLog> {

    /**
     * 签到接口
     *
     * @param userId
     * @param userName
     * @param date
     */
    void doSign(Long userId, String userName, Date date);


    /**
     * 检查用户某天是否已签到
     *
     * @param userId
     * @param localDate
     * @return true-已签到 false-未签到
     */
    boolean checkSign(Long userId, Date localDate);


    /**
     * 获取用户指定时间所在月份（从当月1号到改天）的签到次数
     *
     * @param userId
     * @param date
     * @return
     */
    long getUserSignCount(Long userId, Date date);


    /**
     * 获取当月第一次签到的日期偏移量
     *
     * @param userId
     * @param date
     * @return
     */
    String getFirstSignMonthDay(Long userId, Date date);

}
